package com.hoshiicloud.user.param.supppiler;

import com.hoshiicloud.common.validate.annotations.IdCard;
import com.hoshiicloud.common.validate.annotations.Mobile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 新增店铺（伙伴/供应商)参数
 * </p>
 *
 * @author campchen
 * @since 2019-04-28
 */

@Data
@ApiModel(value = "新增店铺（供应商)", description = "新增店铺（供应商)")
public class StoreOrganizationAddParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "店铺ID 由系统自动传递", required = true, example = "3234906557745463516")
    @NotNull(message = "店铺ID不能为空")
    private Long storeId;

    @ApiModelProperty(value = "机构类型 来源organization_type", required = true, example = "3")
    @NotNull(message = "机构类型不能为空")
    private Long organizationTypeId;

    @ApiModelProperty(name = "departmentId",value = "负责部门id",example = "1000000000000000010")
    private Long departmentId;

    @ApiModelProperty(value = "0-跨境供应商 1-国内供应商", required = true, example = "1")
    private Integer type;

    @ApiModelProperty(value = "上级机构", required = true, example = "3234906557745463516")
    @NotNull(message = "上级机构id不能为空")
    private Long parentId;

    @ApiModelProperty(value = "事业部名称，供应商名称", required = true, example = "采购部")
    @NotBlank(message = "名称不能为空")
    private String name;

    @ApiModelProperty(value = "负责人", required = true)
    @NotBlank(message = "负责人不能为空")
    private String charge;

    @ApiModelProperty(value = "身份证号码", required = true)
    @NotBlank(message = "身份证号码不能为空")
    @IdCard(message = "身份证号码格式有误")
    private String idCard;

    @ApiModelProperty(name = "accountType", value = "账户类型 1-企业账户 2-个人账户")
    private Integer accountType;

    @ApiModelProperty(name = "accountName", value = "户名(开户名称)")
    private String accountName;

    @ApiModelProperty(value = "对公帐号", required = true)
    @NotBlank(message = "对公帐号不能为空")
    private String bankNumber;

    @ApiModelProperty(value = "银行名称", required = true)
    @NotBlank(message = "银行名称不能为空")
    private String bankName;

    @ApiModelProperty(value = "所在支行", required = true)
    @NotBlank(message = "所在支行地址不能为空")
    private String bankAddress;

    @ApiModelProperty(value = "税务登记号")
    private String taxation;

    @ApiModelProperty(value = "开票号")
    private String piaohao;

    @ApiModelProperty(value = "电话号码")
    private String telphone;

    @ApiModelProperty(value = "手机号码")
    @Mobile(message = "手机号码格式有误")
    private String mobile;

    @ApiModelProperty(value = "传真")
    private String fax;

    @ApiModelProperty(value = "主页")
    private String home;

    @ApiModelProperty(value = "邮件")
    private String email;

    @ApiModelProperty(value = "公司地址")
    private String address;

    @ApiModelProperty(value = "发货地址")
    private String goodsAddress;

    @ApiModelProperty(value = "仓库地址")
    private String whouseAddress;

    @ApiModelProperty(value = "结算方式（结算方式表）")
    private Long paymentId;

    @ApiModelProperty(name = "applyType", value = "1-法定代表人 2-经营负责人")
    private Integer applyType;

    @ApiModelProperty(name = "applyIdNumber", value = "申请人身份证号码")
    private String applyIdNumber;

    @ApiModelProperty(name = "applyName", value = "申请人姓名")
    private String applyName;

    @ApiModelProperty(name = "applyAddress", value = "申请人地址")
    private String applyAddress;

    @ApiModelProperty(name = "applyIssuedby", value = "申请人签发机关")
    private String applyIssuedby;

    @ApiModelProperty(name = "applySex", value = "申请人性别")
    private String applySex;

    @ApiModelProperty(name = "applyBirthplace", value = "申请人籍贯")
    private String applyBirthplace;

    @ApiModelProperty(name = "applyBirth", value = "申请人出生日期")
    private String applyBirthday;

    @ApiModelProperty(name = "applyIdFront", value = "申请人身份证正面")
    private String applyIdFront;

    @ApiModelProperty(name = "applyIdBack", value = "申请人身份证反面")
    private String applyIdBack;

    @ApiModelProperty(name = "chargeTelphone", value = "负责人电话")
    private BigDecimal chargeTelphone;

    @ApiModelProperty(name = "chargeWeixin", value = "负责人微信")
    private BigDecimal chargeWeixin;

    @ApiModelProperty(name = "chargeEmail", value = "负责人邮箱")
    private BigDecimal chargeEmail;

    @ApiModelProperty(name = "province", value = "省份")
    private BigDecimal province;

    @ApiModelProperty(name = "provinceName", value = "省份名")
    private BigDecimal provinceName;

    @ApiModelProperty(name = "city", value = "城市")
    private BigDecimal city;

    @ApiModelProperty(name = "cityName", value = "城市名称")
    private BigDecimal cityName;

    @ApiModelProperty(name = "district", value = "地区")
    private BigDecimal district;

    @ApiModelProperty(name = "districtName", value = "地区名")
    private BigDecimal districtName;

    @ApiModelProperty(name = "street", value = "街道")
    private BigDecimal street;

    @ApiModelProperty(name = "streetName", value = "街道名")
    private BigDecimal streetName;

    @ApiModelProperty(value = "推荐人ID  来源于 合作伙伴")
    private Long referrerId;

    @ApiModelProperty(value = "创建人")
    private String createdBy;

    @ApiModelProperty(value = "联系人")
    private String contacts;

    @ApiModelProperty(value = "邀请码")
    private String invitedCode;

    @ApiModelProperty(value = "微信号")
    private String weixin;

    @ApiModelProperty(value = "公司简介")
    private String profile;
}
